package com.zyzd.commontools.string;

import android.annotation.SuppressLint;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by LZY on 2017/7/12.
 */

public class DateUtil {

    public static String formatTime(long time, String formatStr) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatStr);
        return simpleDateFormat.format(new Date(time));
    }

    /**
     * 返回：yyyy-MM-dd HH:mm:ss格式的时间
     *
     * @param time
     * @return
     */
    public static String formatTime_ymdhms(long time) {
        return formatTime(time, "yyyy-MM-dd  HH:mm:ss");
    }

    /**
     * 返回：yyyy-MM-dd格式的时间
     *
     * @param time
     * @return
     */
    public static String formatTime_ymd(long time) {
        return formatTime(time, "yyyy-MM-dd");
    }

    /**
     * 返回：yyyy-MM格式的时间
     *
     * @param time
     * @return
     */
    public static String formatTime_ym(long time) {
        return formatTime(time, "yyyy-MM");
    }

    /**
     * 格式化时间戳
     *
     * @param timestamp
     * @param formatStr
     * @return
     */
    public static String formatTimestamp(long timestamp, String formatStr) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatStr);
        return simpleDateFormat.format(new Date(convertStampToTime(timestamp)));
    }

    /**
     * 格式化时间戳返回：yyyy-MM-dd HH:mm:ss格式的时间
     *
     * @param timestamp
     * @return
     */
    public static String formatTimestamp_ymdhms(long timestamp) {
        return formatTimestamp(timestamp, "yyyy-MM-dd HH:mm:ss");
    }

    /**
     * 格式化时间戳返回：yyyy-MM-dd格式的时间
     *
     * @param timestamp
     * @return
     */
    public static String formatTimestamp_ymd(long timestamp) {
        return formatTimestamp(timestamp, "yyyy-MM-dd");
    }

    /**
     * 格式化时间戳返回：yyyy-MM格式的时间
     *
     * @param timestamp
     * @return
     */
    public static String formatTimestamp_ym(long timestamp) {
        return formatTimestamp(timestamp, "yyyy-MM");
    }

    /**
     * 将指定字符串转换成Date格式
     *
     * @param time
     * @param dateFormat
     * @return
     */
    public static Date parseStringToDate(String time, String dateFormat) {
        @SuppressLint("SimpleDateFormat") SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
        try {
            return simpleDateFormat.parse(time);
        } catch (ParseException e) {
            return null;
        }
    }

    /**
     * 将时间转换为时间戳
     *
     * @param time
     * @return
     */
    public static long convertTimeToStamp(long time) {
        return time / 1000;
    }

    /**
     * 将时间戳转换为时间
     *
     * @param stampTime
     * @return
     */
    public static long convertStampToTime(long stampTime) {
        return stampTime * 1000;
    }
}
